package com.ruoyi.system.domain.vo;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.github.pagehelper.util.StringUtil;
import lombok.Data;
import java.util.Date;
import java.util.List;

@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class BProjectVo {
    /**
     * id
     */
    private Long id;

    /**
     * 药企Id
     */
    private Long companyId;

    /**
     * 名称
     */
    private String name;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 总数
     */
    private Integer totalNum;

    /**
     * 剩余数
     */
    private Integer surplusNum;

    /**
     * 标签
     */
    private String labels;

    /**
     * 类型，0-训练项目，1-审核项目
     */
    private String type;

    /**
     * 开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginDate;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新者
     */

    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 药企列表
     */
    private List<BCompanyVo> companyList;

    /**
     * 用户列表
     */
    private List<BUserVo> userList;

    /**
     * 评分规则列表
     */
    private List<BScoreRuleVo> scoreRuleList;

    private List<String> labelList;

    private Integer taskNum;

    private Integer answerNum;

    private Integer explainNum;

    private Integer caseNum;

    private Integer doctorNum;

    public List<String> getLabelList() {
        if(StringUtil.isEmpty(labels)){
            return null;
        }else{
            this.labelList = JSONObject.parseArray(this.labels, String.class);
            this.setLabels(null);
            return this.labelList;
        }
    }
}
